package com.lhy.admin.common.secure.authorization;

import com.lhy.admin.common.secure.authentication.Authentication;

import java.lang.annotation.*;

/**
 * 权限注解
 * 如果类上标注该注解，则所有方法都需要授权
 * 授权Authorization
 */
@Documented
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Permissions {

    /**
     需要的权限值
     */
    String[] value() default {};

    /**
     多个权限之前逻辑，默认为and
     */
    Logical logical() default Logical.AND;

    /**
     * 权限名称 和Logical枚举同时存在时优先
     */
    String logicalName() default "";


}
